package ww;

public class J20_package {
	
	// 패키지 package
	// 프로그램을 여러개의 다른 부분으로 개발한다면
	// 유지보수를 위해 클래스를 조직화해야 함
	// 자바에서는 패키지를 이용해 
	// 관련 클래스나 유사한 기능을 가진 클래스들로 그룹화 할수 있음.
	// 자바 핵심 클래스는 java.lang 패키지에 있음
	// 자바 프로그램 작성의 도움을 주는 유틸리티
	// 클래스들은 java.util 패키지에 있음
	// java로 시작하는 패키지는 java라는 핵심 라이브러리를 확장한 라이브러리라는 의미임
	// 따라서, 일반 개발자는 java나 javax로 시작하는 패키지는 만들수 없음
	// 클래스를 조직화 하고 패키징함으로써 이름 충돌을 피할 수 있음
	// 즉, 클래스이름이 동일하다러도 패키지만 다르면 얼마든지 허용됨
	// 단, 이러한 목적을 위해 패키지 표기법은 역방향 도메인 이름에 기초함
	
	// 예를 들어, java 공식홈페이지 주소는
	// java.sun.com 임
	// 이것을 패키지 이름으로 작성한다면
	// com.sun.java로 표기됨
	// 일반적으로 패키지는 조직성격.회사명.기타등등 순으로 작성하는것이 관례임
	// org.iedu.javaled17.아이디.프로젝트명.클래스명
	// 패키지는 물리적 개체가 아님 - 만드는데 돈 안듬
	// 따라서 , 하나만 만들 필요 없음
	// 패키지를 통해 클래스를 그룹화 하려면
	// package라는 예약어 사용해야 함
	// 클래스의 패키지화는 클래스의 가시성에 영향을 줌
	
	// 패키지는 물리적인 객체가 아니지만
	// 패키지 이름은 소스파일의 물리적인 위치와 관련있음
	// 따라서 , a.b.c라는 패키지를 가진 클래스D는  a/b/c 디렉트뢰 아래에 D라는 소스파일이 
	// 존재한다는 것을 의미
	
	// 한편 , 패키지 선언이 없는 클래스는 기본 패키지에 속해 있다고 말함
	// 기본 패키지에 속한 클래스들은 기본 패키지 밖에서는 볼수 없음
	public static void main(String[] args) {

	}

}
